package com.alan.camunda.boot.groovymod.shelllab;

import com.alibaba.fastjson2.JSONArray;
import com.alibaba.fastjson2.JSONObject;
import groovy.lang.Binding;
import groovy.lang.GroovyShell;

/**
 * 测试访问 Table 的列
 */
public class Lab1Demo4 {


    public static void main(String[] args) {

        // 创建绑定对象，将变量和方法传递到 Groovy 脚本中
        Binding binding = new Binding();

        JSONArray table = new JSONArray();
        JSONObject r1 = new JSONObject();
        r1.put("c1", "1000");
        r1.put("c2", "1111");
        JSONObject r2 = new JSONObject();
        r2.put("c1", "2000");
        r2.put("c2", "2111");

        table.add(r1);
        table.add(r2);

        binding.setVariable("table", table);


        // 创建 GroovyShell 实例，并注入绑定对象
        GroovyShell shell = new GroovyShell(binding);

        // 定义 Groovy 脚本
        String script = """
            import static com.alan.camunda.boot.util.StringFunctions.*
            def result = table.c1
            println "Name: result, Type: ${result.getClass()}"
            return result
        """;

        // 执行 Groovy 脚本
        Object result = shell.evaluate(script);

        // 输出执行结果
        System.out.println("Groovy script result: " + result);
    }


}
